The present invention relates to an information processing apparatus, an information processing method, and a program. More particularly, the invention relates to an information processing apparatus, an information processing method, and a program for applying effects to the information to be output.
The widespread use of personal computers in recent years has prompted large numbers of people to reproduce music using their PCs. Typically, users utilize an application program capable of audio reproduction to reproduce and enjoy audio data recorded on a recording medium loaded in the personal computer as well as audio data stored inside the personal computer.
Where Windows (registered trademark) is used as the operating system (OS) of the personal computer, the standard audio output functions of the OS are offered by DLL (Dynamic Link Library) called Winmm.dll in the windows¥system32 folder. Illustratively, when sound effects are reproduced during execution of an application program such as a video game, the application program supplies audio data reproduction commands to Winmm.dll. In turn, Winmm.dll transfers the audio data reproduction commands along with audio data to a user mode driver corresponding to the audio device to be set for each application program. A typical standard user mode driver of Windows (R) is Wdmaud.drv.
Referring to FIG. 1, steps to reproduce audio data using Windows (registered trademark) as the OS are explained below. In step S1, a typical application program for audio reproduction calls up the waveoutOpen function of Winmm.dll at the time when an audio data reproduction process takes place. The waveoutOpen function is a function that opens an output device.
In step S2, Winmm.dll calls up the wodMessageOpen function of Wdmaud.drv designated as the user mode driver, in order to open the driver and set parameters necessary for the transfer and reproduction of audio data.
After the open sequence, the application program in step S3 generally calls up the waveoutWrite function of Winmm.dll. In step S4, Winmm.dll calls up the wodMessageWrite function of Wdmaud.drv so as to transfer the audio data. Steps S3 and S4 are repeated until writing of the audio data is finished.
After the audio data has been written, the application program in step S5 generally calls up the waveoutClose function of Winmm.dll. In step S6, Winmm.dll calls up the wodMessageClose function of Wdmaud.drv to terminate the audio data reproduction process.
Techniques exist for reproducing source audio data not only as it is but also with various sound effects added during reproduction. With such techniques, it is possible illustratively to emphasize specific frequency bands of the source audio data for particular effects. For example, lacking sound portions may be compensated to clarify what may be called sound contours; the bass register may be compensated to make reproduced music sound more powerful; the alto and treble registers may be compensated to make the music sound more brilliant; or reverberating effects may be added so as to make the music sound as if it were being played in a theater or in a small-scale live-performance establishment. The techniques are disclosed illustratively in a document “Virtual 3D Surround Software QMAX II” disclosed online by Easy Systems Japan at http://www.easy.co.jp/qmax2/index.html (retrieved on the Internet on Mar. 22, 2004).
The above-described typical application program has UI (user interface) for operating effect parameters. Based on the user's operation input, the application program can apply sound effects to the audio data being reproduced by another application program. The typical application program discussed above will be referred to as an effect parameter operating application program in the ensuing description.
It might happen that audio data being reproduced by a typical application program is subject to sound effects provided by the effect parameter operating application program which is stopped halfway while the data reproducing program is still in operation. In such a case, with the effect parameter operating application program deactivated, the audio data reproduced by the typical application program is still being output together with the sound effects. That is, the effect parameter operating application program controls audio processing parameters for an audio data processing module, and does not operate on the audio data directly.
Illustratively, as shown in FIG. 2, the audio data reproduced by a typical application program 1 is supplied to an audio data hook/signal processing module 2 capable of hooking audio data and processing signals. Given parameter settings from an effect parameter operating application program 3, the audio data hook/signal processing module 2 gives sound effects to the supplied audio data. The audio data thus processed is fed to a driver 4 that controls the operation of hardware such as speakers for audio output.
As outlined above, there already exist application programs capable of applying sound effects to audio data being reproduced. However, the types of effects are specific to each application program; it has been difficult for such application programs to utilize standard effect plug-ins such as DirectX Plug-in and VST.
One way to use such standard plug-ins is to constitute a user mode driver that is visible to an audio driver. The user mode driver may hook audio data and give sound effects to the hooked data using the plug-ins. Because the user mode driver is executed within a thread of a reproduction application program (typical application program 1 in FIG. 2), the life time of the plug-ins in the memory depends on the reproduction application program in use.
However, to execute effect plug-ins generally requires internally retaining the halfway status of signal processing and the parameter settings involved. It follows that if the life time of the plug-ins in the memory is dependent on the reproduction application program being used and is thus uncontrollable, it is difficult to obtain easy parameter operability or satisfactory results of the signal processing.
As mentioned above, the traditional application program capable of giving effects to the audio data being reproduced does not process the audio data directly. Instead, the application program merely causes modules for processing audio data to control their parameters for audio data processing. Thus it is difficult to prepare GUI displays such as spectrum analyzer meters indicative of the audio data being treated for effects.